package com.xinghou.platform.server.api.bussiness;

import com.xinghou.platform.entity.req.ListReq;
import com.xinghou.platform.entity.resp.SubjectResp;
import com.xinghou.platform.model.main.Subject;
import com.xinghou.platform.model.main.SubjectReply;
import com.xinghou.platform.model.main.SubjectReplyPraise;

import java.util.List;

/**
 * Created by qingshengzheng on 16/6/23.
 */
public interface SubjectService {

    public Integer pubSubject(Subject subject,String joinnum);

    public void updateSubject(Subject subject,String joinnum);

    public void updateSubjectReply(SubjectReply subjectReply);

    public void delSubject(Long id,String operator);
    public SubjectResp subjectDetailInfo(Long userid, Long subjectid);

    public void addSubjectJoinNum(Long uid, Long subjectid);

    public SubjectResp subjectDetail(Long uid,Long subjectid);

    public Long subjectReply(SubjectReply reply,String from);

    public void delSubjectReply(Long id,Long subjectid);

    public List<SubjectReply> getHotReplys(Long id,String uid);

    public List<SubjectReply> hotSubjectReplysList(Long id,String uid);

    public List<SubjectReply> getReplys(Long subjectid,String startno, String rownum,String uid,String direction,String timestamp);

    public List<SubjectReply> subjectReplyList(ListReq listReq);

    public List<SubjectResp> getSubjects(Long startno, int rownum,String uid);

    public List<SubjectResp> getSubjectList(ListReq listReq);

    public Subject getLastSubject();

    public SubjectResp getLastSubjectResp();

    public void likeReply(SubjectReplyPraise subjectReplyPraise);

    public String getSubjectJoinNumber(Long subject);

    public String getSubjectReplyNumber(Long subject);

    public SubjectReply getMostHotReply(Long subject);

    public Long getSubjectReplyPaiseCount(Long replyid);

    public void updateSubjectShareCount(String subjectid);

    public void updateSubjectClickCount(String subjectid);

    public boolean isPraised(String replyid, String uid);

    public List<Subject> getLastThreeDaySubject();

    public void updateRandomJoinnum(Long subjectid,int randomjoinnumber);

    public List<SubjectReply> getUserSubjectReply(ListReq listReq);

}
